user.func.php API参考文档
# user.func.php API 参考文档
## 概述
`user.func.php` 是 Xiuno BBS 的用户模型层,提供了用户的 CRUD 操作、登录认证、Token 机制等核心功能。
## 原始 CURD 操作
### `user__create()`
#### 说明
```php
function user__create(array $arr): int|false
```
创建用户记录,最原生的插入操作,无关联其他数据。
#### 参数
- `$arr`: 要插入的用户数据数组,键为字段名,值为字段值
#### 返回值
- 成功返回插入的用户 ID
- 失败返回 FALSE
#### 示例
```php
$arr = array(
'username' => 'testuser',
'email' => 'test@example.com',
'password' => md5('password'),
'gid' => 2
);
$uid = user__create($arr);
```
### `user__update()`
#### 说明
```php
function user__update(int $uid, array $update): int|false
```
更新用户记录,最原生的更新操作。
#### 参数
- `$uid`: 用户 ID
- `$update`: 要更新的数据数组
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$update = array('username' => 'newname');
$r = user__update(1, $update);
```
### `user__read()`
#### 说明
```php
function user__read(int $uid): array|false
```
读取用户记录,最原生的查询操作。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 成功返回用户数组
- 失败返回 FALSE
#### 示例
```php
$user = user__read(1);
```
### `user__delete()`
#### 说明
```php
function user__delete(int $uid): int|false
```
删除用户记录,最原生的删除操作。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$r = user__delete(1);
```
## 关联 CURD 操作
### `user_create()`
#### 说明
```php
function user_create(array $arr): int|false
```
创建用户,包含关联操作(如更新全站统计)。
#### 参数
- `$arr`: 要插入的用户数据数组
#### 返回值
- 成功返回插入的用户 ID
- 失败返回 FALSE
#### 示例
```php
$arr = array(
'username' => 'testuser',
'email' => 'test@example.com',
'password' => md5('password'),
'gid' => 2
);
$uid = user_create($arr);
```
### `user_update()`
#### 说明
```php
function user_update(int $uid, array $arr): int|false
```
更新用户,包含缓存清理等关联操作。
#### 参数
- `$uid`: 用户 ID
- `$arr`: 要更新的数据数组
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$update = array('username' => 'newname');
$r = user_update(1, $update);
```
### `user_read()`
#### 说明
```php
function user_read(int $uid): array
```
读取用户,包含数据格式化。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 返回格式化后的用户数组
- 如果用户不存在,返回空数组
#### 示例
```php
$user = user_read(1);
```
### `user_read_cache()`
#### 说明
```php
function user_read_cache(int $uid): array
```
从缓存中读取用户,避免重复从数据库取数据。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 返回用户数组
- 如果用户不存在,返回游客用户数组
#### 示例
```php
$user = user_read_cache(1);
```
### `user_delete()`
#### 说明
```php
function user_delete(int $uid): int|false
```
删除用户,包含清理关联数据(主题、回帖、附件等)。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$r = user_delete(1);
```
### `user_find()`
#### 说明
```php
function user_find(array $cond = array(), array $orderby = array(), int $page = 1, int $pagesize = 20): array
```
查找用户列表。
#### 参数
- `$cond`: 条件数组
- `$orderby`: 排序数组
- `$page`: 页码
- `$pagesize`: 每页数量
#### 返回值
- 返回用户列表数组
#### 示例
```php
$userlist = user_find(array('gid' => 2), array('uid' => -1), 1, 20);
```
## 其他方法
### `user_read_by_email()`
#### 说明
```php
function user_read_by_email(string $email): array|false
```
通过邮箱读取用户。
#### 参数
- `$email`: 用户邮箱
#### 返回值
- 成功返回用户数组
- 失败返回 FALSE
#### 示例
```php
$user = user_read_by_email('test@example.com');
```
### `user_read_by_username()`
#### 说明
```php
function user_read_by_username(string $username): array|false
```
通过用户名读取用户。
#### 参数
- `$username`: 用户名
#### 返回值
- 成功返回用户数组
- 失败返回 FALSE
#### 示例
```php
$user = user_read_by_username('testuser');
```
### `user_count()`
#### 说明
```php
function user_count(array $cond = array()): int|false
```
统计用户数量。
#### 参数
- `$cond`: 条件数组
#### 返回值
- 成功返回用户数量
- 失败返回 FALSE
#### 示例
```php
$count = user_count(array('gid' => 2));
```
### `user_maxid()`
#### 说明
```php
function user_maxid(array $cond = array()): int|false
```
获取用户最大 ID。
#### 参数
- `$cond`: 条件数组
#### 返回值
- 成功返回最大用户 ID
- 失败返回 FALSE
#### 示例
```php
$maxid = user_maxid();
```
### `user_format()`
#### 说明
```php
function user_format(array &$user): void
```
格式化用户数据。
#### 参数
- `$user`: 用户数组(引用传递)
#### 返回值
- 无返回值,直接修改传入的数组
#### 示例
```php
$user = user_read(1);
user_format($user);
```
### `user_guest()`
#### 说明
```php
function user_guest(): array
```
获取游客用户数据。
#### 参数
- 无参数
#### 返回值
- 返回游客用户数组
#### 示例
```php
$guest = user_guest();
```
### `user_update_group()`
#### 说明
```php
function user_update_group(int $uid): bool
```
根据积分调整用户组。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 成功返回 TRUE
- 失败返回 FALSE
#### 示例
```php
user_update_group(1);
```
### `user_find_by_uids()`
#### 说明
```php
function user_find_by_uids(string $uids): array
```
根据多个用户 ID 查找用户。
#### 参数
- `$uids`: 逗号分隔的用户 ID 字符串
#### 返回值
- 返回用户数组,键为用户 ID
#### 示例
```php
$users = user_find_by_uids('1,2,3');
```
### `user_safe_info()`
#### 说明
```php
function user_safe_info(array $user): array
```
获取用户安全信息(移除敏感字段)。
#### 参数
- `$user`: 用户数组
#### 返回值
- 返回移除敏感字段后的用户数组
#### 示例
```php
$safe_user = user_safe_info($user);
```
## Token 机制
### `user_token_get()`
#### 说明
```php
function user_token_get(): int
```
获取用户 Token。
#### 参数
- 无参数
#### 返回值
- 返回用户 ID
#### 示例
```php
$uid = user_token_get();
```
### `user_token_get_do()`
#### 说明
```php
function user_token_get_do(): int|false
```
Token 验证逻辑。
#### 参数
- 无参数
#### 返回值
- 成功返回用户 ID
- 失败返回 FALSE
#### 示例
```php
$uid = user_token_get_do();
```
### `user_token_set()`
#### 说明
```php
function user_token_set(int $uid): void
```
设置用户 Token。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 无返回值
#### 示例
```php
user_token_set(1);
```
### `user_token_clear()`
#### 说明
```php
function user_token_clear(): void
```
清除用户 Token。
#### 参数
- 无参数
#### 返回值
- 无返回值
#### 示例
```php
user_token_clear();
```
### `user_token_gen()`
#### 说明
```php
function user_token_gen(int $uid): string
```
生成用户 Token。
#### 参数
- `$uid`: 用户 ID
#### 返回值
- 返回生成的 Token 字符串
#### 示例
```php
$token = user_token_gen(1);
```
## 登录验证
### `user_login_check()`
#### 说明
```php
function user_login_check(): void
```
前台登录验证。
#### 参数
- 无参数
#### 返回值
- 无返回值,如果未登录会跳转到登录页面
#### 示例
```php
user_login_check();
```
### `user_http_referer()`
#### 说明
```php
function user_http_referer(): string
```
获取用户来路。
#### 参数
- 无参数
#### 返回值
- 返回来路 URL
#### 示例
```php
$referer = user_http_referer();
```
### `user_auth_check()`
#### 说明
```php
function user_auth_check(string $token): array
```
用户认证检查。
#### 参数
- `$token`: 认证 token
#### 返回值
- 返回用户数组
#### 示例
```php
$user = user_auth_check($token);
```